﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Amoo.Code.Business
{
    public class ModuleUrl:IHttpModule
    {
        #region IHttpModule Members
        public void Dispose()
        {

        }

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(context_BeginRequest);
        }


        /// <summary>
        /// Intercepta a conexão HTTP antes da chamada da DefaultPage da aplicação
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void context_BeginRequest(object sender, EventArgs e)
        {
            
            string url = HttpContext.Current.Request.Url.AbsoluteUri;

            //HttpContext.Current.Response.Write(url);
            
            if (url.ToLower().IndexOf(".") == -1)
            { 
                //não foi digitado nenhum endereço .aspx
                string strSmartUrl = url.Substring(url.LastIndexOf("/") + 1).ToLower();

                

                VerificaUsuarioSmartURL(strSmartUrl);
            }


        }

        void VerificaUsuarioSmartURL(string pSmartURL) 
        {

            Code.Data.Usuario oUsuario = new Amoo.Code.Data.Usuario();
            pSmartURL = pSmartURL.Replace("%20", " ");
            Code.Entity.Usuario eUsuario = oUsuario.Get(pSmartURL);

            if (eUsuario != null)
            {
                HttpContext.Current.RewritePath("Visualizar/ComunidadePorusuario.aspx?idUsuario=" + eUsuario.idUsuario.ToString());
            }
            else
            {
                VerificaComunidadeSmartURL(pSmartURL);
            }
        }

        private void VerificaComunidadeSmartURL(string pSmartURL)
        {
            Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
            pSmartURL = pSmartURL.Replace("%20", " ");
            Code.Entity.Comunidade eComunidade  = new Amoo.Code.Entity.Comunidade()
            {
                dsNomeComunidade = pSmartURL
            };
            eComunidade = oComunidade.GetIdbyName(eComunidade);

            if (eComunidade != null)
            {
                HttpContext.Current.RewritePath("Visualizar/NoticiaPorComunidade.aspx?idComunidade=" + eComunidade.idComunidade.ToString());
            }
        }
        #endregion
    }
}
